A digital transmission system conveys information using a physical medium such as a cable, optical fiber or propagation on a radio channel and satellite. Such a physical medium will be referred to as the channel. Generally, such a system includes a channel coding device and a decoding device.
The channel coding device has an error correction coding function. The function of the error correction coding includes generating, for a useful information item, a redundant information item which, during decoding at the destination, will make it possible to reconstruct the useful information from the information arriving at its destination affected by disturbance such as the noise, attenuation and interference type occurring on the channel. A digital transmission method using such a channel coding and destination decoding is referred to as a transmission method of the error correction coding type.
The quality of a digital transmission system is evaluated, in general, by calculating the probability of error per bit transmitted. This is notably a function of the signal to noise ratio of the link. The error correction coding, associated with the corresponding decoding, aims to improve the quality of the transmission by virtue of the redundancy introduced into the signal. Redundant information having been introduced by the coding device, the decoding device will use the redundant information received and its knowledge of the coding law in order to correct any errors. In other words, at the destination, from the received information damaged by the channel, the corresponding useful information is reconstructed. For example, because of the redundancy, only certain sequences of coded information, in accordance with the coding law, are possible. If received information sequences to be decoded are different from these possible sequences, it is because they correspond to information damaged by the channel. In the case of a maximum likelihood decoding, the decoding method will reconstruct the useful information by determining, from the sequence of information received and considering the different permitted sequences, the most likely useful information sequence.
The greater the ability to discriminate between the sequences allowed by all the coding operations, the greater the error correction capability.
An important consequence of the redundancy introduced by the coding is the increase in the digital flow rate. An important parameter of the coder is therefore its efficiency, which is equal to the number of information bits per bit transmitted. In general, the lower the efficiency, the more robust the code.
The performance of a transmission with error correction coding is generally measured in terms of bit error ram or packets for a given ratio Eb/No, where Eb is the energy per information bit and No is the power spectral density of the noise. A code is deemed to be more or less efficient depending on whether its use allows a more or less low error rate for a given ratio Eb/No and for a given decoding complexity.
It is possible to improve the performance by using a code of lower efficiency. However, this is done to the detriment of the spectral efficiency of the transmission. Generally, the efficiency used is the efficiency making it possible to guarantee a predetermined error rate, this efficiency possibly being able to change according to the transmission conditions.
Known error correction codes are block codes. Block coding consists of associating, with each block of k information bits, a block of n bits (n>k) therefore containing (n−k) redundant bits. The block of n bits is obtained by multiplying the block of k useful bits by a matrix with k rows and n columns referred to as a code generating matrix. When, by permutation, the generating matrix is written in a form such that it reveals the identity matrix, so that, in the block of n bits, the k information bits and the n−k redundant bits are separated, the code is said to be systematic. The efficiency of the code is equal to k/n. The decoding device detects the errors and corrects them by means of the minimum Hamming distance. Such error defection codes which are well known in the art are for example Hamming codes, BCH codes and Reed-Solomon codes.
Effecting an error correction coding by means of one or more convolutional coders is also well known. Their operating principle consists of coding a block of k binary elements present at the input of the coder as a block of n binary elements taking account also of m blocks preceding the block at the input, by means of a register device. The output of the convolutional coder consists of n coded binary elements generated by the convolution product of the k binary elements present at the input with the response of the coder defined by n generator polynomials. The number n of generator polynomials of the coder is referred to as the dimension of the coder. The efficiency of the code is equal to k/n. The decoding device reconstructs the original data, for example by means of a decoding of the sequential type, a decoding according to the most likely symbol, or a decoding according to the most likely sequence, as described, for example, in the document “Digital Communications” by J. G. Proakis, published in 1995 by MacGraw-Hill. For example, the Viterbi algorithm provides an optimal decoding according to the most likely sequence.
According to a variant of this type of code, the coding is done not by taking directly into account a series of m useful information items preceding the information to be coded, but using a series of m auxiliary information items, stored in a device of the shin register type each obtained by the mathematical combination of a useful information item and m previously calculated auxiliary information items. Such a convolutional code is said to be recursive. When, in addition, the useful information appears as it is amongst the n outputs of the coder alongside (n−I) coded information items or redundant information items, the resulting code is referred to as a systematic recursive convolutional code, or RSC code.
Associating different coders in order to increase the performance of the coding is also known. For example, the data coded by a first coder can feed a second coder. Decoding takes place symmetrically, commencing with the second code.
A high-performance type of association of coders has been proposed, as described notably in the document “Near Shannon Limit Error-Correcting Coding and Decoding: Turbo-codes” by C. Berrou, A. Glavieux, P. Thitimajshima, which appeared in ICC-1993, Conference Proceedings, on pages 1064–1070. This type of combination of coders has given rise to a family of coding schemes known in the art as turbocodes. The term turbocodes will be applied to error correction codes based on the combination, referred to as concatenation, of several single codes, referred to as elementary codes, with the intervention of permutation operations, referred to as interleavings, which modify the order in which the data are taken into account by each of the single codes. Elementary codes means codes introducing a redundancy, of the type described above. It may be a case, for example, of systematic recursive convolutional codes for convolutional turbocodes, Hamming block or BCH codes for block turbocodes. Different types of concatenation can be envisaged. In parallel concatenation, the same information is coded by each coder separately after having been interleaved. In serial concatenation, the output of each code is coded by the following coder after having been interleaved. The dimension of the turbocode means the number of elementary coders used for implementing this turbocode. A well-known turbocoding scheme consists of a parallel concatenation of elementary codes of the Systematic Recursive Convolutional Code (RSC) type. This turbocode is referred to as PCCC. Examples of serial concatenation turbocodes arc SCCCs which use elementary codes of the convolutional code type, and block turbocodes which use elementary codes of the block code type. Serial concatenation turbocodes are described in particular in the articles “Serial concatenation of interleaved codes: Performance analysis, design and iterative decoding” written by S. Benedeno, G Montorsi, D. Divsalar and F. Pollara, in JPL TDA Prog. Rep., vol. 42–126, in August 1996 and “Analysis Design and Iterative Decoding of Double Serially Concatenated Codes with Iderleavers” written by S. Benedetto, D. Divsalar, G. Montorsi and F. Pollara, in IEEE JOURNAL ON SELECTED AREAS IN COMMUNICATIONS, vol 16, No 2, pages 231–244 in February 1998.
Information coded by a turbocode can be decoded by an iterative method referred to hereinafter as turbodecoding. In order to effect this turbodecoding, several elementary decoders with weighted inputs and outputs each corresponding to an elementary coder of the coding device are combined. The weighted inputs and outputs are effected in terms of probabilities, likelihood ratios or log likelihood ratios. Interleavers and deinterleavers enable each decoder to take into account an item of information which is presented in the same order as a corresponding item of information at the output or input of the corresponding coder. Each elementary decoder receive an item of information corresponding to an item of information output from the corresponding coder and an item of information corresponding to input information of the corresponding coder, and generate information of increased reliability. The supplementary information generated by an elementary decoder is referred to as the extrinsic information. It is used by one or more other elementary decoders after adapted interleaving or deinterleaving. The exchange of extrinsic information takes place between elementary decoders within the same step, and from this step to the following step. Each new step therefore increases the reliability of the information generated at the output. The elementary decoders use for example MAP, LogMAP, MaxLogMAP, SOYA, or Chase algorithms which are described, for example, in the articles “Optimal and sub-optimal maximum a posteriori algorithms suitable for turbo decoding” by P. Robertson, P. Hoeher and E. Villebrun, which appeared in European Trans. on Telecommun., vol. 8, March-April 1997, on pages 119–125 and “A very low complexity block turbo decoder for product codes” by R. Pyndiah, P. Combelles and P. Adde, which appeared in Proc. IEEE Globecom 1996, on pages 101–105. A thresholding is applied to the information output from the last decoding step in order to generate the decoded information.
The term turbodecoding encompasses various concatenation schemes which can be envisaged, dependent for example on the type of turbocoding used. For example, in a turbodecoding corresponding to a serial concatenation turbocode, the elementary decoders being associated in reverse order of the elementary coders, each elementary decoder receives two priori weighted information items corresponding one to the output information from the corresponding elementary coder and the other to the input information of the corresponding elementary coder. This elementary decoder produces two posterior weighted information items, one corresponding to the output of the corresponding elementary coder and which therefore becomes, during a following iteration, after corresponding interleaving, the priori input of a preceding elementary decoder, and the other corresponding to the input of the corresponding elementary coder, and which therefore becomes, in the same iteration, after corresponding deinterleaving, the priori input of a following elementary decoder. Examples of turbodecoding for serial concatenation turbocodes are described notably in the aforementioned articles “Serial concatenation of interleaved codes: Performance analysis, design and iterative decoding” written by S. Benedetto, G Montorsi, D. Divsalar and F. Pollara, in JPL TDA Prog. Rep., vol. 42–126, in August 1996 and “Analysis Design and Iterative Decoding of Double Serially Concatenated Codes with Interleavers” written by S. Benedetto, D. Divsalar, G. Montorsi and F. Pollara, in IEEE JOURNAL ON SELECTED AREAS IN COMMUNICATIONS, vol 16, No 2, pages 231–244 in February 1998. The elementary decoders are in general concatenated in series, but other types of concatenation may be envisaged.
Whatever the case, the extrinsic information can always be defined as the additional information afforded by an elementary decoding associated with an elementary coding with respect to a priori information item, acting at the input of the elementary decoding.
It is also known that the efficiency of a code can be increased by a puncturing operation, which consists of not transmitting certain bits in a sequence of information, as described, for example, in the article “Rate-Compatible Punctured Convolutional (RCPC) codes and their application” by J. Hagenauer, which appeared in IEEE Trans., Vol COM-36.4, 1988, on pages 389–400 or in the article “New Rate Compatible Punctured Convolutional Codes for Viterbi Decoding” by L. H. C. Lee, which appeared in IEEE Trans., Vol. COM-42.2, 1994, on pages 3073–3079. These non-transmitted bits are in general redundant information bits. One or more puncturing operations occur at transmission, after one or more coding operations. At the destination, one or more reciprocal depuncturing operations are carried out before one or more decoding operations. The puncturing of redundant information bits reduces the correction capacity of a code and increases its efficiency.
In the case of serial concatenation turbocodes, the puncturing, on transmission, can occur after each elementary coding operation, before the interleaving operation. There will generally be, in the case of serial concatenation turbocodes, as many puncturing matrices as there are elementary coders. The efficiency of the elementary codes not generally being the same and the puncturing being generally distributed unequally, the size of a given interleaves will depend on the one hand on the efficiency of the elementary code which precedes it and on the other hand on the puncturing matrix interposed between this elementary code and this interleaves. The global efficiency of the serial turbocode will be equal to the product of the efficiencies of the elementary codes each modified by the corresponding puncturing.
The error correction codes of the family of turbocodes according to the state of the art described above make it possible to obtain very high performance error correction whilst preserving sufficiently high efficiency and allowing decoding operations of low complexity compared with the complexity of the code.
However, it is known that the performance of a transmission using an error correction code varies according to the transmission conditions. Transmission conditions means the parameters having an influence on the performance of the transmission such as in particular the signal to noise ratio, but also the bit or packet error rate, the signal to interference plus noise ratio, the number of active users of a telecommunications system, the quality of service required by the transmission system, the speed of movement of the user of the transmission system or any other parameter.
In the state of the adaptation to the transmission conditions is effected by decreasing or increasing the efficiency in order to make the code more or less robust depending on whether the channel is more or less harsh.
One object of the present invention is to allow a dynamic adaptation to the transmission conditions of an error correction code transmission method of the serial concatenation turbocode type, at constant efficiency.